
package com.cwnu.sw.cys.core.websocket.domain.vo.resp;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 聊天成员响应类
 * 该类通过Lombok注解简化了getter、setter以及构造器的编写，
 * 并通过Swagger注解ApiModelProperty来描述每个字段的用途，
 * 以便在API文档中进行清晰的展示
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ChatMemberResp {
    /**
     * 用户ID
     * 用于唯一标识聊天成员
     */
    @ApiModelProperty("uid")
    private Long uid;

    /**
     * 在线状态
     * 表示成员当前是否在线，1代表在线，2代表离线
     *
     * @todo ChatActiveStatusEnum
     *       此处可能需要一个枚举类ChatActiveStatusEnum来更清晰地定义在线和离线状态，
     *       以提高代码的可读性和可维护性
     */
    @ApiModelProperty("在线状态 1在线 2离线")
    private Integer activeStatus;

    /**
     * 角色ID
     * 表示成员在聊天中的角色，如普通用户、管理员等
     * 这个字段没有使用ApiModelProperty注解，因为它的作用和用途可能需要进一步明确
     */
    private Integer roleId;

    /**
     * 最后一次上下线时间
     * 记录成员最后一次上线或下线的时间，用于显示成员的活动状态
     */
    @ApiModelProperty("最后一次上下线时间")
    private Date lastOptTime;
}
